As a result of the proliferation of microprocessors, many modern systems use embedded microprocessor-based systems for subsystem control and for adaptive parameter and code storage. The systems using embedded microprocessor-based systems include personal computers, automotive and airplane control systems, cellular telephones, digital cameras, and handheld communication devices. The embedded systems used in automotive applications, for example, comprise small amounts of embedded non-volatile memory for adaptive parameter and code storage for engine controls, supplemental restraint systems, anti-lock braking systems, and transmission control systems.
The typical embedded systems use electrically erasable programmable read-only memory (EEPROM) as the non-volatile memory for adaptive parameters. The EEPROM is used because, in automotive applications for example, it provides the ability to read, program, and erase a single byte with high reliability for over 100,000 program/erase cycles at the extreme temperatures of the automotive environment, temperatures ranging from -40 degrees Celsius to 125 degrees Celsius. The problem with the EEPROM is that in the typical embedded system the EEPROM is not located on the same integrated circuit as the associated microcontroller. This design proves to be expensive because of the additional hardware required and the additional serial protocol required to communicate with the off-chip EEPROM.
A typical flash memory device has the same array configuration as a standard EEPROM and can be programmed in a similar fashion as the standard EEPROM. The size of a typical flash memory array allows the flash memory to be located on the same integrated circuit chip as the associated microcontroller; the typical flash memory, however, cannot provide EEPROM functionality because it cannot have data rewritten to the same address location without first erasing a large portion or block of memory comprising a number of memory cells. Once programmed, either the entire contents of the flash memory or a block of the flash memory can be erased by electrical erasure in one relatively rapid operation.
An erasing voltage is made available to the sources of all the cells in the flash memory or in one block of the flash memory. This results in a full array erasure or a block erasure. The flash memory or the erased block of the flash memory may then be reprogrammed with new data.
The typical flash memory cell is not byte alterable because the high voltages and long time necessary to perform erase operations cause cells coupled to common wordlines and bitlines to experience disturb conditions. These disturb conditions are the result of voltages that cause a change in the cell threshold voltage of the memory cell by adding or removing electrons from the floating gates. Furthermore, programming operations also cause disturb conditions. Consequently, the number of program/erase cycles available from the typical flash memory used in automotive applications is limited to approximately 1000.
Three types of disturb conditions are manifested during the programming and erasing of cells in a typical flash array. One type of disturb condition is a gate disturb, or DC programming. The gate disturb affects memory cells coupled to a common wordline. The gate disturb occurs when a 12 volt signal is applied to a common wordline of an erased bit having a source and drain held at a potential of zero volts. This gate disturb causes electrons to move to the floating gate, thereby programming the floating gate of the memory bits coupled to the common wordline. Another type of disturb condition affecting memory cells of a common wordline is a DC erase. The DC erase occurs when a 12 volt signal is applied to the gate of a programmed cell and the electrons leave the floating gate, as in a memory cell erase.
A drain disturb, or program disturb, affects memory cells coupled to a common bitline. Drain disturb occurs during programming when a signal is applied on a common bitline drain on a programmed cell. This disturb causes electrons to depart the floating gate, as in a memory cell erase. Consequently, there is a need for a non-volatile memory device that is byte-alterable and that can provide approximately 100,000 program/erase cycles in the automotive environment.